<?php
	class UbicadosController extends AppController {
		var $name = 'Ubicados';
		var $helpers = array('Ajax',
			'Paginator', 'Foto');
		
		var $paginate = array(
			'Ubicado' => array (
				'limit' => 25,
				'order' => array(
					'Articulo.detalle' => 'asc',
					'Ubicado.estado' => 'asc',
				)
			)
		);

		function index() {
			$this -> Ubicado -> recursive = 0;
			$this -> set('ubicados', $this -> paginate());
		}
		
		function admin_index() {
			$this -> Ubicado -> recursive = 0;
			$this -> set('ubicados', $this -> paginate());
		}

		function view($id = null) {
			if(!$id) {
				$this -> Session -> setFlash(__('Invalid ubicado', true));
				$this -> redirect(array('action' => 'index'));
			}
			$this -> set('ubicado', $this -> Ubicado -> read(null, $id));
		}

		function add($articulo_id = null) {
			if(!empty($this -> data)) {
				$this -> Ubicado -> create();
				if($this -> Ubicado -> save($this -> data)) {
					$this -> Session -> setFlash('El artículo ha sido guardado');
					$this -> redirect(array('action' => 'index'));
				} else {
					$this -> Session -> setFlash('Ocurrió un problema y no se ha guardado el artículo.');
				}
			}
			if($articulo_id) {
				$articulo = $this -> Ubicado -> Articulo -> findById($articulo_id);
				// $ubicaciones = $this->Ubicado->Ubicacion->find('list');
				$ubicaciones = $this -> Ubicado -> Ubicacion -> find('list', array('fields' => array('Ubicacion.ubicacion_completo')));
				$pasillos = $this -> Ubicado -> Pasillo -> find('list', array('fields' => array('Pasillo.pasillo_completo')));
				$this -> set(compact('articulo', 'ubicaciones', 'pasillos'));
			} else {
				$this -> redirect(array('controller' => 'articulos', 'action' => 'listar_desubicados'));
			}
		}

		function admin_edit($id = null) {
			if(!$id && empty($this -> data)) {
				$this -> Session -> setFlash('Artículo inválido');
				$this -> redirect(array('action' => 'index'));
			}
			if(!empty($this -> data)) {
				if($this -> Ubicado -> save($this -> data)) {
					$this -> Session -> setFlash('El artículo ha sido modificado');
					$this -> redirect(array('action' => 'index'));
				} else {
					$this -> Session -> setFlash('Ocurrió un problema y no se ha modificado el artículo.');
				}
			}
			if(empty($this -> data)) {
				$this -> data = $this -> Ubicado -> read(null, $id);
			}
			$ubicaciones = $this -> Ubicado -> Ubicacion -> find('list', array('fields' => array('Ubicacion.ubicacion_completo')));
			$pasillos = $this -> Ubicado -> Pasillo -> find('list', array('fields' => array('Pasillo.pasillo_completo')));
			$this -> set(compact('ubicaciones', 'pasillos'));
		}

		function delete($id = null) {
			if(!$id) {
				$this -> Session -> setFlash(__('Invalid id for ubicado', true));
				$this -> redirect(array('action' => 'index'));
			}
			if($this -> Ubicado -> delete($id)) {
				$this -> Session -> setFlash(__('Ubicado deleted', true));
				$this -> redirect(array('action' => 'index'));
			}
			$this -> Session -> setFlash(__('Ubicado was not deleted', true));
			$this -> redirect(array('action' => 'index'));
		}

		function update_listado() {
			$this -> layout = 'ajax';
			if(!empty($this -> data)) {
				//$cadena = strtoupper($this -> data['Buscar']['articulo']);
				$cadena = mb_strtoupper($this -> data['Buscar']['articulo'], 'utf-8');
				
				$articulos = $this -> Ubicado -> Articulo -> find('list', array('conditions' => array("Articulo.detalle LIKE" => "%".$cadena."%")));
				
				$this -> set('ubicados', $this -> paginate('Ubicado', array('Ubicado.articulo_id' => array_keys($articulos))));
				$this -> render("/elements/update_listado");
			}
		}

	}
?>